#pragma once
#include "ShaderProgram.h"
#include <map>

namespace banknamespace
{
	class ShaderManagerOpenGL
	{
	public:
		ShaderManagerOpenGL(void);
		~ShaderManagerOpenGL(void);

		int createProgram(const char* programName, std::vector<attrStruct>& attrStr, std::vector<const char*>& uniformString);
		void useProgram(int progID);
		int getLocation(const char* name);
		void setVariable(int ulocation, shaderType type, void* value);


		///// container
		// Shader programs
		std::vector<ShaderProgram*> shaderProgArr;
		// Attribute for all programs
		std::vector<std::vector<attrStruct>> attributeProg;
		// UniformLocation for all programs
		//std::vector<std::map<std::string, int>> uniformLocation;

		int currentProgram;
	private:
		std::map<std::string, int> attributeMap;
		
		
	};
}


